const obj = {
  name: 'zhangsan',
};

const p = new Proxy(obj, {
  deleteProperty: (target, prop) => {
    /**
     * 代理对象会随着源对象的变动而变动
     * 你如果删除更改源对象里面的东西,代理对象也会更改
     *
     * 你如果不删除源对象里面的东西,代理对象不会更改
     */
    delete target[prop];
    return true;
  },
});

console.log('删除前', p);
// 如果没有 delete target[prop] 这一行代码,那么代理对象属性不会被删除
delete p.name;
console.log('删除后', p);
